<?
class TemplateNews{
    var $fieldsort = '';//Sắp xếp theo trường nào
    var $sort		= '';//Sắp xếp tăng hay giảm
    var $page		= 1;//Trang hiện tại
    var $page_size = 5;//Kích cỡ 1 trang hiển thị bao nhiêu kết quả
    public function news() {
        $slides = db_array('SELECT *
                        FROM news
                        WHERE new_active = 1
                        ORDER BY new_id DESC
                        LIMIT '.($this->page - 1)*$this->page_size.' ,'.$this->page_size);
        return $slides;
    }  
    public function news_total() {
        $arr = db_array('SELECT new_id
                        FROM news
                        WHERE new_active = 1
                        ');
        return count($arr);
    }    
    public function news_detail($new_id) {
        $arr = db_first('SELECT *
                        FROM news
                        WHERE new_id ='.$new_id);
        return $arr;
    }     
    public function news_older($new_id) {
        $cur_news_date = db_first('SELECT new_date FROM news WHERE new_id ='.$new_id);
        $arr = db_array('SELECT *
                        FROM news
                        WHERE new_active = 1
                        AND new_date < '.$cur_news_date['new_date'].'
                        ORDER BY new_date DESC
                        LIMIT 5');
        return $arr;
    }  
    public function news_other($news_id) {
        $arr = db_array('SELECT *
                        FROM news
                        WHERE new_active = 1 AND new_id != '.$news_id.'
                        LIMIT 5');
        return $arr;
    }
    public function news_follow_cat_id($new_cat_id) {
        $arr = db_array('SELECT *
                        FROM news
                        WHERE new_active = 1
                        AND new_cat_id = '.$new_cat_id.'
                        ORDER BY new_date DESC
                        LIMIT '.($this->page - 1)*$this->page_size.' ,'.$this->page_size);
        return $arr;
    }
    public function news_follow_cat_id_total($new_cat_id) {
        $arr = db_array('SELECT new_id
                        FROM news
                        WHERE new_active = 1
                        AND new_cat_id ='.$new_cat_id);
        return count($arr);
    }
   public function pagging_news() {
      $total = $this->news_total();
      if($total%($this->page_size) == 0) {
          $total_count = $total/($this->page_size);    
      }
      else {
          $total_count = (int)($total/($this->page_size)) + 1;
      }
      $page = $this->page;
      $html = '<div class="paging">';
      $html .= '<a class="pagingCount" href="#">Trang '.$page.'/'.$total_count.'</a>';
      if($page > 1) {
         $html .= '<a class="pagingFirst" href="'.generate_news_page_url(1).'"></a>';
      }
      // Tổng số trang nhỏ hơn 5
      if($total_count < 5) {
         // Trang hiện tại lớn hơn 1 thì hiện nút previous
         if($page > 1) {
         $html .= '<a class="pagingPrevious" href="'.generate_news_page_url($page - 1).'"></a>';
         }
         for($i = 1; $i <= $total_count; $i++) {
            $html .= '<a class="pagingNumber'.(($page == $i) ? " pgBold" : "").'" href="'.generate_news_page_url($i).'">'.$i.'</a>';
         }
         // Trang hiện tại nhỏ hơn tổng số trang thì hiện nút next
         if($page < $total_count) {
            $html .= '<a class="pagingNext" href="'.generate_news_page_url($page + 1).'"></a>';
         }
      }
      // Trang hiện tại nhỏ hơn 3 và tổng số trang lớn hơn 5
      if($page <= 3 && $total_count > 5) {
        // Trang hiện tại lớn hơn 1 thì hiện nút previous
        if($page > 1) {
            $html .= '<a class="pagingPrevious" href="'.generate_news_page_url($page - 1).'"></a>';
        }
        for($i = 1; $i < 5; $i++) {
            $html .= '<a class="pagingNumber'.(($page == $i) ? " pgBold" : "").'" href="'.generate_news_page_url($i).'">'.$i.'</a>';
        }
        $html .= '<a  class="pagingDot" href="#">...</a>';
        // Trang hiện tại nhỏ hơn tổng số trang thì hiện nút next
        if($page < $total_count) {
            $html .= '<a class="pagingNext" href="'.generate_news_page_url($page + 1).'"></a>';
        }    
      }
      // Trang hiện tại lớn hơn 3, tổng số trang lớn hơn 5 và sau trang hiện tại 2 trang vẫn nhỏ hơn tổng số trang
      if($page > 3 && $total_count > 5 && $page + 2 <= $total_count) {
         $html .= '<a class="pagingPrevious" href="'.generate_news_page_url($page - 1).'"></a>
               <a class="pagingDot" href="#">...</a>
               <a class="pagingNumber" href="'.generate_news_page_url($page - 2).'">'.($page-2).'</a>
               <a class="pagingNumber" href="'.generate_news_page_url($page - 1).'">'.($page-1).'</a>
               <a class="pagingNumber pgBold" href="'.generate_news_page_url($page).'">'.($page).'</a>
               <a class="pagingNumber" href="'.generate_news_page_url($page + 1).'">'.($page+1).'</a>
               <a class="pagingNumber" href="'.generate_news_page_url($page + 2).'">'.($page+2).'</a>';
        $html .= '<a class="pagingDot" href="#">...</a>';
        // Trang hiện tại nhỏ hơn tổng số trang thì hiện nút next
        if($page < $total_count) {
            $html .= '<a class="pagingNext" href="'.generate_news_page_url($page + 1).'"></a>';
        }
      }
      // Trang hiện tại lớn hơn 3, tổng số trang lớn hơn 5 và sau trang hiện tại 2 trang lớn hơn tổng số trang
      if($page > 3 && $total_count > 5 && $page + 2 > $total_count) {
         $html .= '<a class="pagingPrevious" href="'.generate_news_page_url($page - 1).'"></a>
               <a class="pagingDot" href="#">...</a>
               <a class="pagingNumber" href="'.generate_news_page_url($page - 2).'">'.($page-2).'</a>
               <a class="pagingNumber" href="'.generate_news_page_url($page - 1).'">'.($page-1).'</a>
               <a class="pagingNumber pgBold" href="'.generate_news_page_url($page).'">'.($page).'</a>';
        for($i = $page+1; $i <= $total_count; $i++) {
            $html .= '<a class="pagingNumber" href="'.generate_news_page_url($i).'">'.$i.'</a>';
        }
        // Trang hiện tại nhỏ hơn tổng số trang thì hiện nút next
        if($page < $total_count) {
            $html .= '<a class="pagingNext" href="'.generate_news_page_url($page + 1).'"></a>';
        }
      }
      if($page < $total_count) {
         $html .= '<a class="pagingLast" href="'.generate_news_page_url($total_count).'"></a>';
      }
      $html .= '</div>';
      return $html;
   }    
}
?>